package com.wuzhiming.istudy.controller;

import com.alibaba.fastjson.JSONObject;
import com.wuzhiming.istudy.pojo.CourseType;
import com.wuzhiming.istudy.utils.LogUtils;
import org.slf4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/**
 * @ClassName: CourseTypeController
 * @Description:
 * @Author:zhimingw
 * @Version 1.0
 * @since 2021/7/16 14:00
 */
@Controller
public class CourseTypeController extends BaseController{
    private Logger logger = LogUtils.getInstance(CourseTypeController.class);
    
    /**
    * @Description: 添加类别
    * @Param: [kind]
    * @return: java.lang.String
    * @Author: zhimingw
    * @Date: 2021/7/16
    */
    @PostMapping("/addType")
    @ResponseBody
    public String addType(CourseType courseType){
        List<CourseType> courseTypes = courseTypeService.queryAll();
        System.out.println(courseTypes+"111");
        System.out.println(courseType+"222");
        for(int i=0;i<courseTypes.size();i++){
            if(courseTypes.get(i).getTitle().equals(courseType.getTitle())){
                result.setCode(501);
                logger.warn("【失败】添加类别，该名称已经被占用");
                return JSONObject.toJSONString(result);
            }
        }
        if(courseTypeService.insert(courseType)){
            result.setCode(200);
            logger.warn("【成功】添加类别");
        }else {
            result.setCode(500);
            logger.warn("【失败】添加类别");
        }
        return JSONObject.toJSONString(result);
    }

    /**
     * @Description: 更新类别
     * @Param: [kind]
     * @return: java.lang.String
     * @Author: zhimingw
     * @Date: 2021/7/16
     */
    @PostMapping("/updateType")
    @ResponseBody
    public String updateType(CourseType courseType){
        // 检查用户是不是没有更改任何的信息
        CourseType old = courseTypeService.queryById(courseType.getId());
        if (courseType.getTitle().equals(old.getTitle())){
            result.setCode(501);
            logger.warn("【失败】更新类别，没有修改任何信息");
            return JSONObject.toJSONString(result);
        }
        // 如果更新之后的类别名称已被占用
        List<CourseType> courseTypes = courseTypeService.queryAll();
        for(int i=0;i<courseTypes.size();i++){
            if(courseTypes.get(i).getTitle().equals(courseType.getTitle())){
                result.setCode(502);
                logger.warn("【失败】更新类别，该名称已被占用");
                return JSONObject.toJSONString(result);
            }
        }
        if (courseTypeService.update(courseType)) {
            result.setCode(200);
            logger.warn("【成功】更新类别");
        }else {
            result.setCode(500);
            logger.warn("【失败】更新类别");
        }
        return JSONObject.toJSONString(result);
    }

    /**
     * @Description: 删除类别
     * @Param: [id]
     * @return: java.lang.String
     * @Author: zhimingw
     * @Date: 2021/7/16
     */
    @GetMapping("/deleteType")
    public String deleteType(Integer id){
        if(id!=null){
            if(courseTypeService.deleteById(id)){
                logger.warn("【成功】删除类别");
            }else {
                logger.warn("【失败】删除类别");
            }
        }
        return "redirect:/stages";
    }
}
